package com.yxw.yx_hotel.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxw.yx_hotel.entity.YxCsMenuEntity;
import com.yxw.yx_hotel.entity.YxCsRoleEntity;
import com.yxw.yx_hotel.vo.RoleVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 角色管理Mapper接口
 *
 * @author xiexuxin
 * @date 2023-09-18
 */
@Repository
public interface RoleMapper extends BaseMapper<YxCsRoleEntity> {

    /**
     * 角色启用/禁用
     * @param roleId
     */
    void updateRoleStatusById(@Param("roleId") Long roleId);

    /**
     * 删除角色
     *
     * @param roleIds 需要删除的数据主键集合
     * @return 受影响条数
     */
    int deleteByRoleIds(List<Long> roleIds);

    /**
     * 查询角色列表
     *
     * @return
     */
    List<RoleVO> roleList(@Param("loginTenantId") Long loginTenantId);

    /**
     * 根据用户查询拥有的菜单ids
     * @param roleId
     * @return
     */
    List<Long> selectMenuIdsByUserId(Long roleId);

    /**
     * 查询启用角色列表
     * @return
     */
    List<RoleVO> roleListByStatus(@Param("loginTenantId") Long loginTenantId);

    /**
     *  查询对应菜单列表
     * @param menuIds
     * @return
     */
    List<YxCsMenuEntity> selectMenuList(List<Long> menuIds);
}
